package org.redmagic.api;

import java.util.List;
import java.util.Set;

import org.redmagic.domain.InternalServiceProperty;
import org.springframework.stereotype.Repository;

import com.google.common.base.Optional;

@Repository
public interface PropertyDao {

	public Set<String> getAllTags();
	
	public Set<String> getSelectedTags(String key);
	
	public long getPropertyCount();
	
	public List<InternalServiceProperty> getAllProperties();
	
	public Optional<InternalServiceProperty> findProperty(String name, Set<String> tags, String group);
	
	public void createProperty(String name, Set<String> tags, String value, String group);
	
	public void updateProperty(String key, String name, Set<String> tags, String value, String group);
	
	public void removeProperty(String key);
}
